package week07.day01;

/**
 * 创建类后会默认自带一个无参构造，一旦手动创建该类的构造方法后自带的就会消失
 * 构造方法名必须与类名一致
 * 构造方法，没有返回值类型，不涉及在方法体中使用return返回值
 *
 * 构造方法的定义：
 * 修饰符  方法名(形参列表){方法体}
 */

public class 构造方法 {
    public static void main(String[] args) {
        Person person = new Person("李明",123,"男",2301);//创建对象时会调用对应的构造方法
    }

    static class Person {
        String name;//姓名
        int age;//年龄
        String sex;//性别
        int sno;//学生编号

        public Person() {
            System.out.println("我是无参构造方法");//无参构造方法默认自带 在创建参数之后就消失
        }

        public Person(String name) {
            System.out.println("我是含有name属性的有参构造方法");
        }

        public Person(String name, int age){
            System.out.println("我是含有name和age属性的有参构造方法");
        }


        public void sleep() {
            System.out.println("睡觉");
        }

        public Person(String name, int age, String sex) {
            this.name = name;
            this.age = age;
            this.sex = sex;
            System.out.println("我是含有name、age、sex属性的有参构造方法");
        }

        public Person(String name, int age, String sex, int sno) {
            this.name = name;
            this.age = age;
            this.sex = sex;
            this.sno = sno;
            System.out.println("我是全参构造方法");
        }
    }
}